﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using MySql.Data;
using MySql.Data.MySqlClient;
using System.Data.Odbc;

namespace LectorHuellaC
{
    public partial class Principal : Form
    {
        log4net.ILog logger;
        String versionapp = "A 1.0";
        string conectionStatus="";
        public Principal()
        { 
            log4net.Config.XmlConfigurator.Configure();
            logger = log4net.LogManager.GetLogger(typeof(Program));
            InitializeComponent();
            this.Text = ":: Reloj Checador :: " + versionapp;
            updateVersion();
        }

        public void updateVersion()
        {
               
            string IdEmpresa = Settings1.Default.IdEmpresa.ToString();
            string IdSucursal = Settings1.Default.IdSucursal;
            ConectaBD conBD = new ConectaBD();
            string version_reloj_check = "Select version_reloj_check from catsucursales " 
            +" where id_enweb = " + IdEmpresa + " AND id_sucursal = '" + IdSucursal + "'";

            DataSet ds_version = new DataSet();
            DataTable dataversion = new DataTable();

            try
            {

                ds_version = conBD.Consulta(version_reloj_check);
                label1.Text = "";
                label1.Text = conBD.conexioStatus;
                conectionStatus = conBD.conexioStatus;
                dataversion = ds_version.Tables["Resultado"];

                version_reloj_check = dataversion.Rows[0]["version_reloj_check"].ToString();

                if (!versionapp.Equals(version_reloj_check))
                {
                    string query = "update catsucursales set version_reloj_check = '" + versionapp + "' where id_enweb = " + IdEmpresa + " AND id_sucursal = '" + IdSucursal + "' and '" + versionapp + "'  <> '" + version_reloj_check + "'  ";
                    bool correcto = conBD.InsertUpdate(query);
                    if (correcto == false)
                    {
                        MessageBox.Show("La version del software se ha actualizado", "Opcion de acceso", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    }
                }
            }
            catch (Exception ex)
            {
                logger.Error("Error",ex);
            }
        }

        private void Principal_Load(object sender, EventArgs e)
        {
            ///CreaConexion();
        }

        

        private void btnConfiguracion_Click(object sender, EventArgs e)
        {            
            string VariableRetorno; 
            InputForm Input = new InputForm();
            Input.ShowDialog();
            VariableRetorno = Input.variable;
            if (VariableRetorno == "Cancelado")
            {
                return;
            }
            else
            {
                DataSet ds = new DataSet();
                ConectaBD conBD = new ConectaBD();
                ds = conBD.Consulta("Select AccesoConfig from reloj_acceso");
                if (ds.Tables.Count == 0)
                {
                    MessageBox.Show("Error en la consulta de Acceso de Configuración (T)", "Acceso de Configuración", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    return;
                }
                if (ds.Tables["Resultado"].Rows.Count == 0)
                {
                    MessageBox.Show("No se encontraron accesos de configuración", "Acceso a Configuración", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    return;
                }

                string Acceso = ds.Tables[0].Rows[0][0].ToString();
                if (Acceso == VariableRetorno)
                {
                    Configuracion frmConfiguracion = new Configuracion();
                    frmConfiguracion.tipoConexion(conBD.conexioStatus);
                    frmConfiguracion.ShowDialog();
                    updateVersion();
                    
     
                }
                else
                {
                    MessageBox.Show("Clave de acceso no válida", "Acceso a Configuración", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); 
                }
            }
        }

        private void btnRelojChec_Click(object sender, EventArgs e)
        {
            //Form activeform = Form.ActiveForm;
            RelojChecador Reloj = new RelojChecador();
            Reloj.tipoConexion(conectionStatus);
            Reloj.ShowDialog();
            //Reloj.Show();
            //activeform.AddOwnedForm(Reloj);
          
            //activeform.BringToFront();
        }

        private void btnCap_incidencias_Click(object sender, EventArgs e)
        {
            CapturaIncidencias CapInc = new CapturaIncidencias();
            CapInc.ShowDialog();
        }

        private void btnAdministracion_Click(object sender, EventArgs e)
        {
            string IdEmpresa = Settings1.Default.IdEmpresa.ToString();
            string IdSucursal = Settings1.Default.IdSucursal;
            string VariableRetornoAcceso;
            InputForm Input = new InputForm();
            Input.ShowDialog();
            //varCveConfig
            VariableRetornoAcceso = Input.variable;

            if (VariableRetornoAcceso == "Cancelado")
            {
                return;
            }
            else
            {
                DataSet ds = new DataSet();
                ConectaBD conBD = new ConectaBD();
                string strConsulta = "Select AccesoAdmin from reloj_accesoadmin where IdEmpresa = " + IdEmpresa + " And IdSucursal = '" + IdSucursal + "' ";
                ds = conBD.Consulta(strConsulta);
                if (ds.Tables.Count == 0)
                {
                    MessageBox.Show("Error en la consulta de Acceso Administración (T)", "Acceso Administración", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    return;
                }
                if (ds.Tables["Resultado"].Rows.Count == 0)
                {
                    MessageBox.Show("No se encontraron accesos de administración configurados para esta sucursal", "Acceso Administración", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    return;
                }

                string Acceso = ds.Tables[0].Rows[0]["AccesoAdmin"].ToString();
                if (Acceso == VariableRetornoAcceso)
                {
                    //string VariableRetornoAdm;
                    OpcionesAdministracion FrmOpAdm = new OpcionesAdministracion();
                    FrmOpAdm.tipoConexion(conBD.conexioStatus);
                    FrmOpAdm.ShowDialog();
                    
                    /*VariableRetornoAdm = FrmOpAdm.VariableAdm; // Devuelve el valor de la opcion seleccionada

                    if (VariableRetornoAdm == "AdmOpcionesAcceso")
                    {
                        AdmOpcionesAcceso admopacc = new AdmOpcionesAcceso();
                        admopacc.ShowDialog();
                    }
                    if (VariableRetornoAdm == "OpcionesReloj")
                    {
                        OpcionesAccesoReloj frmOpAccesoReloj = new OpcionesAccesoReloj();
                        frmOpAccesoReloj.ShowDialog();
                    }
                    if (VariableRetornoAdm == "ConsultaIncidencias")
                    {
                        ConsultaIncidencias frmConsultaIncidencias = new ConsultaIncidencias();
                        frmConsultaIncidencias.ShowDialog();
                    }*/
                }
                else
                {
                    MessageBox.Show("Clave de acceso no válida", "Acceso a Administración", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                }
            }
        }

        private void btnSalir_Click(object sender, EventArgs e)
        {
            this.Close();
            this.Dispose();
        }

       /* private void btnTest_mysql_Click(object sender, EventArgs e)
        {
            string Driver = "MySQL ODBC 5.1 Driver";
            string lcstringconn = "Driver={" + Driver + "};Port=3306;Server=soltecconsultores.com.mx;Database=soltec_centralfra;Uid=soltec_centsis;Pwd=b1s=37a#k#z);Option=1";
            //string path = "DataBase=soltec_centralfra;DataSource=localhost;Port=3306; user=root; password=tetin";
            OdbcConnection conodbc = new OdbcConnection(lcstringconn);
            try
            {
                conodbc.Open();
                OdbcCommand cmd = new OdbcCommand("Update reloj_acceso set AccesoConfig = 'megateto'", conodbc);
                //OdbcCommand cmd = new OdbcCommand("Insert Into reloj_prueba values ('megateto')", conodbc);
                cmd.ExecuteNonQuery();

                //OdbcDataAdapter da = new OdbcDataAdapter("Select * from reloj_empleados", conodbc);
                //DataSet ds = new DataSet();
                //da.Fill(ds, "Resultado");

                MessageBox.Show("OK");
            }
            catch (Exception ex)
            {
                logger.Error("Error"+ex);
                MessageBox.Show("error");
            }
            

        }*/

        private void btn_reports_Click(object sender, EventArgs e)
        {
            FormEntradasSalidas formEnSal = new FormEntradasSalidas();
            formEnSal.ShowDialog();
        }

        private void panel4_Paint(object sender, PaintEventArgs e)
        {

        }

        private void panel2_Paint(object sender, PaintEventArgs e)
        {

        }

        private void panel5_Paint(object sender, PaintEventArgs e)
        {

        }

        private void panel6_Paint(object sender, PaintEventArgs e)
        {

        }

        private void button1_Click(object sender, EventArgs e)
        {
            label1.Text = "asdasdasdasdasdasd";
        }

        private void button1_Click_1(object sender, EventArgs e)
        {
            this.Close();
            this.Dispose();
        }
        
    }
}
